package com.xiaolun.controller;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.xiaolun.Entity.User;
import com.xiaolun.Utils.JsonUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @Author 硕鼠
 * @Date 2020/4/6 16:08
 * @Version 1.0
 * @Description 文件说明
 */
@Controller
public class TestController {

    @ResponseBody
    @RequestMapping("/test")
    public String  Test(){
        return "ok";
    }

    @RequestMapping("/json1")
    @ResponseBody
    public String json1(){
//        //需要一个jackson的对象映射器，就是一个类，使用它可以直接将对象转换为json字符串
//        ObjectMapper mapper = new ObjectMapper();
//        //创建一个对象
//        User user = new User("xiaolun",3,"男");
//        //将Java对象转化为json字符串
//        try {
//            String str = mapper.writeValueAsString(user);
//            return str; //由于使用了 @ResponseBody注解，将str以json的格式返回。
//        } catch (JsonProcessingException e) {
//            e.printStackTrace();
//        }
//        return  null;
//    }

        try {
            return new ObjectMapper().writeValueAsString(new User("xiaolun",3,"男")); //由于使用了 @ResponseBody注解，将str以json的格式返回。
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return  null;
    }
//        时间测试
//        @RequestMapping("/time1")
//        @ResponseBody
//        public String time1(){
//            ObjectMapper mapper = new ObjectMapper();
//            //关闭时间戳功能
//            mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
//            //自定义格式对象
//            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//            //让mapper指定时间日期
//            mapper.setDateFormat(sdf);
//            Date date = new Date(); //写一个日期对象
//            try {
//                return mapper.writeValueAsString(date);
//            } catch (JsonProcessingException e) {
//                e.printStackTrace();
//            }
//            return null;
//        }

    @RequestMapping("/time1")
    @ResponseBody
    public String time1(){
        Date date = new Date(); //写一个日期对象
        try {
            return JsonUtils.getJson(date);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

}
